<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/Python-3.6.2/Include/pystrtod.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/Python-3.6.2/Include/pystrtod.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="macros_noref.html#_UHlfU1RSVE9EX0hfMA__"><span class="b">Py_STRTOD_H</span></a>
<a name="2" /><span class="True">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfU1RSVE9EX0hfMA__"><span class="b">Py_STRTOD_H</span></a>
<a name="3" /><span class="True">       3:</span> 
<a name="4" /><span class="False">       4:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__cplusplus</span>
<a name="5" /><span class="False">       5:</span> <span class="m">extern</span> <span class="e">&quot;C&quot;</span> <span class="f">{</span>
<a name="6" /><span class="True">       6:</span> <span class="f">#</span><span class="n">endif</span>
<a name="7" /><span class="True">       7:</span> 
<a name="8" /><span class="True">       8:</span> 
<a name="9" /><span class="True">       9:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">double</span><span class="f">)</span> <span class="b">PyOS_string_to_double</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">str</span><span class="f">,</span>
<a name="10" /><span class="True">      10:</span>                                          <span class="m">char</span> <span class="f">*</span><span class="f">*</span><span class="b">endptr</span><span class="f">,</span>
<a name="11" /><span class="True">      11:</span>                                          <span class="b">PyObject</span> <span class="f">*</span><span class="b">overflow_exception</span><span class="f">)</span><span class="f">;</span>
<a name="12" /><span class="True">      12:</span> 
<a name="13" /><span class="True">      13:</span> <span class="k">/* The caller is responsible for calling PyMem_Free to free the buffer</span>
<a name="14" /><span class="True">      14:</span> <span class="k">   that&apos;s is returned. */</span>
<a name="15" /><span class="True">      15:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyOS_double_to_string</span><span class="f">(</span><span class="m">double</span> <span class="b">val</span><span class="f">,</span>
<a name="16" /><span class="True">      16:</span>                                          <span class="m">char</span> <span class="b">format_code</span><span class="f">,</span>
<a name="17" /><span class="True">      17:</span>                                          <span class="m">int</span> <span class="b">precision</span><span class="f">,</span>
<a name="18" /><span class="True">      18:</span>                                          <span class="m">int</span> <span class="b">flags</span><span class="f">,</span>
<a name="19" /><span class="True">      19:</span>                                          <span class="m">int</span> <span class="f">*</span><span class="b">type</span><span class="f">)</span><span class="f">;</span>
<a name="20" /><span class="True">      20:</span> 
<a name="21" /><span class="True">      21:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="22" /><span class="True">      22:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">_Py_string_to_number_with_underscores</span><span class="f">(</span>
<a name="23" /><span class="True">      23:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">str</span><span class="f">,</span> <span class="b">Py_ssize_t</span> <span class="b">len</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">what</span><span class="f">,</span> <span class="b">PyObject</span> <span class="f">*</span><span class="b">obj</span><span class="f">,</span> <span class="m">void</span> <span class="f">*</span><span class="b">arg</span><span class="f">,</span>
<a name="24" /><span class="True">      24:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="f">(</span><span class="f">*</span><span class="b">innerfunc</span><span class="f">)</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="b">Py_ssize_t</span><span class="f">,</span> <span class="m">void</span> <span class="f">*</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="25" /><span class="True">      25:</span> 
<a name="26" /><span class="True">      26:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">double</span><span class="f">)</span> <span class="b">_Py_parse_inf_or_nan</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">p</span><span class="f">,</span> <span class="m">char</span> <span class="f">*</span><span class="f">*</span><span class="b">endptr</span><span class="f">)</span><span class="f">;</span>
<a name="27" /><span class="True">      27:</span> <span class="f">#</span><span class="n">endif</span>
<a name="28" /><span class="True">      28:</span> 
<a name="29" /><span class="True">      29:</span> 
<a name="30" /><span class="True">      30:</span> <span class="k">/* PyOS_double_to_string&apos;s &quot;flags&quot; parameter can be set to 0 or more of: */</span>
<a name="31" /><span class="True">      31:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfRFRTRl9TSUdOXzA_"><span class="b">Py_DTSF_SIGN</span></a>      <span class="c">0x01</span> <span class="k">/* always add the sign */</span>
<a name="32" /><span class="True">      32:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfRFRTRl9BRERfRE9UXzBfMA__"><span class="b">Py_DTSF_ADD_DOT_0</span></a> <span class="c">0x02</span> <span class="k">/* if the result is an integer add &quot;.0&quot; */</span>
<a name="33" /><span class="True">      33:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfRFRTRl9BTFRfMA__"><span class="b">Py_DTSF_ALT</span></a>       <span class="c">0x04</span> <span class="k">/* &quot;alternate&quot; formatting. it&apos;s format_code</span>
<a name="34" /><span class="True">      34:</span> <span class="k">                                  specific */</span>
<a name="35" /><span class="True">      35:</span> 
<a name="36" /><span class="True">      36:</span> <span class="k">/* PyOS_double_to_string&apos;s &quot;type&quot;, if non-NULL, will be set to one of: */</span>
<a name="37" /><span class="True">      37:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfRFRTVF9GSU5JVEVfMA__"><span class="b">Py_DTST_FINITE</span></a> <span class="c">0</span>
<a name="38" /><span class="True">      38:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfRFRTVF9JTkZJTklURV8w"><span class="b">Py_DTST_INFINITE</span></a> <span class="c">1</span>
<a name="39" /><span class="True">      39:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfRFRTVF9OQU5fMA__"><span class="b">Py_DTST_NAN</span></a> <span class="c">2</span>
<a name="40" /><span class="True">      40:</span> 
<a name="41" /><span class="False">      41:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__cplusplus</span>
<a name="42" /><span class="False">      42:</span> <span class="f">}</span>
<a name="43" /><span class="True">      43:</span> <span class="f">#</span><span class="n">endif</span>
<a name="44" /><span class="True">      44:</span> 
<a name="45" /><span class="True">      45:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* !Py_STRTOD_H */</span>
<a name="46" /><span class="True">      46:</span> </pre>
  </body>
</html>
